// 引入express模块
const express = require('express')
const admin = require('./route/admin')
const home = require('./route/home')
const path = require('path')
const session = require('express-session')
const bodyParser = require('body-parser')
const dataFormat = require('dataformat')
const template = require('art-template')
    // 导入第三方模块
const morgan = require('morgan')
    // const config = require('config')
    // 创建服务器
const app = express();
const guard = require('./middleware/loginGuard')
require('./model/connect.js');

app.use(bodyParser.urlencoded({ extended: false }));
// 配置session
app.use(session({ secret: 'secret key' }))

// 告诉express框架模板所在位置
app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'art')
app.engine('art', require('express-art-template'))
    // 像模版当中导入dataFormat变量
template.defaults.imports.dataFormat = dataFormat
    // console.log(config.get('title'))


if (process.env.NODE_ENV == 'development') {
    console.log('目前是开发环境')

    // 在开发环境冲，将客户端发送到服务器的请求信息打印到控制台中
    app.use(morgan('dev'))
} else {
    console.log('当前是生产环境')
}
// 开放静态资源
app.use(express.static(path.join(__dirname, 'public')))
app.use('/admin', guard)

app.use('/admin', admin)
app.use('/home', home)
    // 获取电脑系统环境变量 返回值是对象

// 错误信息请求对象需要放在最后面
// app.use((err, req, res, next) => {
//         const result = JSON.parse(err)
//         let params = []
//         for (let attr in result) {
//             if (attr != 'path') {
//                 params.push(attr + '=' + result[attr])
//             }
//         }
//         res.redirect(`${result.path}?${params.join('&')}`)
//     })
// 监听窗口
app.listen(80)
console.log('网站服务器启动成功，登录localhost查看')